package kr.co.bettersoft.pushchat.common;

import java.text.SimpleDateFormat;
import java.util.Date;

import kr.co.bettersoft.pushchat.activity.R;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;

/**
 * 어플내에서 공용으로 사용할 메소드들을 모아두는 클래스이다.
 * @author blue
 *
 */
public class CommonUtil {
	public static Context context;
	// 현 시각
	public Date today ;
	public SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public SimpleDateFormat sfImg = new SimpleDateFormat("yyyyMMddHHmmss");

	//	public static SimpleDateFormat sfKr = new SimpleDateFormat("yyyy년 MM월 dd일 a hh시 mm분");
	//	public static SimpleDateFormat sfKr2 = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분");
	//	public static SimpleDateFormat sfKrChat = new SimpleDateFormat("MM월 dd일 a hh시 mm분");

	//	public String year = "";	//	context.getResources().getString(R.string.year);
	//	public String month = "";	//	context.getResources().getString(R.string.month);
	//	public String day = "";	//	context.getResources().getString(R.string.day);
	//	public String hour = "";	//	context.getResources().getString(R.string.hour);
	//	public String minute = "";	//	context.getResources().getString(R.string.minute);
	//	public SimpleDateFormat sfGeneral = new SimpleDateFormat("yyyy"+year+" MM"+month+" dd"+day+" a hh"+hour+" mm"+minute);
	//	public SimpleDateFormat sfGeneral2 = new SimpleDateFormat("yyyy"+year+" MM"+month+" dd"+day+" HH"+hour+" mm"+minute);
	//	public SimpleDateFormat sfGeneralChat = new SimpleDateFormat("MM"+month+" dd"+day+" a hh"+hour+" mm"+minute);

	public String nowDate;
	String nowTime = "";	// 현시각

	// 현시각
	public String getNowDate(){
		today = new Date();
		nowDate = sf.format(today);
		return nowDate;
	}
	// 이미지 파일명
	public String getNowDateForImage(){
		today = new Date();
		nowDate = sfImg.format(today);
		return nowDate;
	}

	/**
	 * Bitmap이미지의 가로, 세로 사이즈를 리사이징 한다.
	 * 
	 * @param source 원본 Bitmap 객체
	 * @param maxResolution 제한 해상도
	 * @return 리사이즈된 이미지 Bitmap 객체
	 */
	public Bitmap resizeBitmapImage(Bitmap source, int maxWidth, int maxHeight)		// maxWidth 800 maxHeight 600
	{
		int width = source.getWidth();
		int height = source.getHeight();

		Bitmap resizedBitmapImage;

		if(width > height){		// 너비가 더 크면 800 * 600
			resizedBitmapImage = Bitmap.createScaledBitmap(source, maxWidth, maxHeight, true);
		}else{	// 높이가 더 크면 600 * 800
			resizedBitmapImage = Bitmap.createScaledBitmap(source, maxHeight, maxWidth, true);
		}
		return resizedBitmapImage;
	}

	/**
	 * 이미지 라운딩 처리하기
	 * @param bitmap
	 * @return
	 */
	public Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
		Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), 
				bitmap.getHeight(), Config.ARGB_8888); 
		Canvas canvas = new Canvas(output);
		final int color = 0xff424242; 
		final Paint paint = new Paint(); 
		final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
		final RectF rectF = new RectF(rect); 
		final float roundPx = 8; 
		paint.setAntiAlias(true); 
		canvas.drawARGB(0, 0, 0, 0); 
		paint.setColor(color); 
		canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 
		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
		canvas.drawBitmap(bitmap, rect, rect, paint); 
		return output; 
	} 




}
